#ifndef __OEGKI_SURFACE_HEADER__
#define __OEGKI_SURFACE_HEADER__

//////////////////////////////////////////////////////////////////////
// include files
#include <OETypes.h>
#include <OEGKTypes.h>
#include <OEMathTypes.h>

namespace OE { namespace OEGK {

//////////////////////////////////////////////////////////////////////
// Interface OEGKISurface definition begins

struct OEGKISurface : public OEGKIGeometry
{
  virtual OEResult param (OEGKSurfaceParam& surfPrm) = 0;
  virtual OEResult posFromParam (const OEGKSurfaceParam& surfPrm, OEReal64Vector& outPt) = 0;
  virtual OEResult paramFromPos (const OEReal64Vector& pt, OEGKSurfaceParam& surfPrm) = 0;
};

// Interface OEGKISurface definition ends
//////////////////////////////////////////////////////////////////////

}; }; 

#endif // __OEGKI_SURFACE_HEADER__
